'''
9.4 自定义异常
    虽然Python提供了许多内置异常类,但是在实际开发中可能出现的问题难以预料,有时开发人员需要自定义异常类,以满足当前程序的需要.例如,在设计用户注册账户功能
时需要限定用户名或密码等信息类型和长度,自定义异常的方法比较简单,只需要创建一个集成Exception类或者Exception子类的类(类名一般以Error结尾)即可
'''
# 下面通过一个用户注册的密码长度限制的示例来演示自定义异常,示例代码如下:
class ShortInputError(Exception):
    '''自定义异常类'''
    def __init__(self,len,atlest):
        self.len = len                 # 输入密码的长度
        self.atlest = atlest           # 限制密码的长度
try:
    text = input('请输入密码:')
    if len(text) < 3:
        raise ShortInputError(len(text),3)
    '''ry中必须出现异常（无论是自然发生的还是主动抛出的）才会被except捕获。
    在这个例子中，我们使用raise来触发自定义异常，从而达到被except捕获的目的。'''
except ShortInputError as result:
    print('ShortInputError:输入的长度是%d,长度至少是%d'%(result.len,result.atlest))
else:
    print('设置密码成功')
